using System;
using System.Collections.Generic;
using System.Reflection;
using System.Runtime.InteropServices;

using ILRuntime.CLR.TypeSystem;
using ILRuntime.CLR.Method;
using ILRuntime.Runtime.Enviorment;
using ILRuntime.Runtime.Intepreter;
using ILRuntime.Runtime.Stack;
using ILRuntime.Reflection;
using ILRuntime.CLR.Utils;
using System.Linq;

namespace ILRuntime.Runtime.Generated
{
    unsafe class huqiang_Data_DataTypeInfo_Binding
    {
        public static void Register(ILRuntime.Runtime.Enviorment.AppDomain app)
        {
            BindingFlags flag = BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly;
            MethodBase method;
            FieldInfo field;
            Type[] args;
            Type type = typeof(huqiang.Data.DataTypeInfo);
            args = new Type[]{typeof(huqiang.Data.DataInfo), typeof(System.Type)};
            method = type.GetMethod("Analysis", flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, Analysis_0);

            field = type.GetField("fullName", flag);
            app.RegisterCLRFieldGetter(field, get_fullName_0);
            app.RegisterCLRFieldSetter(field, set_fullName_0);
            app.RegisterCLRFieldBinding(field, CopyToStack_fullName_0, AssignFromStack_fullName_0);
            field = type.GetField("name", flag);
            app.RegisterCLRFieldGetter(field, get_name_1);
            app.RegisterCLRFieldSetter(field, set_name_1);
            app.RegisterCLRFieldBinding(field, CopyToStack_name_1, AssignFromStack_name_1);
            field = type.GetField("DataLength", flag);
            app.RegisterCLRFieldGetter(field, get_DataLength_2);
            app.RegisterCLRFieldSetter(field, set_DataLength_2);
            app.RegisterCLRFieldBinding(field, CopyToStack_DataLength_2, AssignFromStack_DataLength_2);
            field = type.GetField("ElementLength", flag);
            app.RegisterCLRFieldGetter(field, get_ElementLength_3);
            app.RegisterCLRFieldSetter(field, set_ElementLength_3);
            app.RegisterCLRFieldBinding(field, CopyToStack_ElementLength_3, AssignFromStack_ElementLength_3);
            field = type.GetField("type", flag);
            app.RegisterCLRFieldGetter(field, get_type_4);
            app.RegisterCLRFieldSetter(field, set_type_4);
            app.RegisterCLRFieldBinding(field, CopyToStack_type_4, AssignFromStack_type_4);
            field = type.GetField("dataFeilds", flag);
            app.RegisterCLRFieldGetter(field, get_dataFeilds_5);
            app.RegisterCLRFieldSetter(field, set_dataFeilds_5);
            app.RegisterCLRFieldBinding(field, CopyToStack_dataFeilds_5, AssignFromStack_dataFeilds_5);
            field = type.GetField("oldDataFeilds", flag);
            app.RegisterCLRFieldGetter(field, get_oldDataFeilds_6);
            app.RegisterCLRFieldSetter(field, set_oldDataFeilds_6);
            app.RegisterCLRFieldBinding(field, CopyToStack_oldDataFeilds_6, AssignFromStack_oldDataFeilds_6);
            field = type.GetField("matchedFields", flag);
            app.RegisterCLRFieldGetter(field, get_matchedFields_7);
            app.RegisterCLRFieldSetter(field, set_matchedFields_7);
            app.RegisterCLRFieldBinding(field, CopyToStack_matchedFields_7, AssignFromStack_matchedFields_7);
            field = type.GetField("newType", flag);
            app.RegisterCLRFieldGetter(field, get_newType_8);
            app.RegisterCLRFieldSetter(field, set_newType_8);
            app.RegisterCLRFieldBinding(field, CopyToStack_newType_8, AssignFromStack_newType_8);
            field = type.GetField("isStruct", flag);
            app.RegisterCLRFieldGetter(field, get_isStruct_9);
            app.RegisterCLRFieldSetter(field, set_isStruct_9);
            app.RegisterCLRFieldBinding(field, CopyToStack_isStruct_9, AssignFromStack_isStruct_9);
            field = type.GetField("typeIndex", flag);
            app.RegisterCLRFieldGetter(field, get_typeIndex_10);
            app.RegisterCLRFieldSetter(field, set_typeIndex_10);
            app.RegisterCLRFieldBinding(field, CopyToStack_typeIndex_10, AssignFromStack_typeIndex_10);
            field = type.GetField("Construction", flag);
            app.RegisterCLRFieldGetter(field, get_Construction_11);
            app.RegisterCLRFieldSetter(field, set_Construction_11);
            app.RegisterCLRFieldBinding(field, CopyToStack_Construction_11, AssignFromStack_Construction_11);
            field = type.GetField("NewType", flag);
            app.RegisterCLRFieldGetter(field, get_NewType_12);
            app.RegisterCLRFieldSetter(field, set_NewType_12);
            app.RegisterCLRFieldBinding(field, CopyToStack_NewType_12, AssignFromStack_NewType_12);
            field = type.GetField("OldType", flag);
            app.RegisterCLRFieldGetter(field, get_OldType_13);
            app.RegisterCLRFieldSetter(field, set_OldType_13);
            app.RegisterCLRFieldBinding(field, CopyToStack_OldType_13, AssignFromStack_OldType_13);


            app.RegisterCLRCreateDefaultInstance(type, () => new huqiang.Data.DataTypeInfo());
            app.RegisterCLRCreateArrayInstance(type, s => new huqiang.Data.DataTypeInfo[s]);

            args = new Type[]{};
            method = type.GetConstructor(flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, Ctor_0);

        }


        static StackObject* Analysis_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* ptr_of_this_method;
            StackObject* __ret = ILIntepreter.Minus(__esp, 3);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            System.Type @typ = (System.Type)typeof(System.Type).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            huqiang.Data.DataInfo @analysis = (huqiang.Data.DataInfo)typeof(huqiang.Data.DataInfo).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
            huqiang.Data.DataTypeInfo instance_of_this_method = (huqiang.Data.DataTypeInfo)typeof(huqiang.Data.DataTypeInfo).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            instance_of_this_method.Analysis(@analysis, @typ);

            return __ret;
        }


        static object get_fullName_0(ref object o)
        {
            return ((huqiang.Data.DataTypeInfo)o).fullName;
        }

        static StackObject* CopyToStack_fullName_0(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataTypeInfo)o).fullName;
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_fullName_0(ref object o, object v)
        {
            ((huqiang.Data.DataTypeInfo)o).fullName = (System.String)v;
        }

        static StackObject* AssignFromStack_fullName_0(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.String @fullName = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Data.DataTypeInfo)o).fullName = @fullName;
            return ptr_of_this_method;
        }

        static object get_name_1(ref object o)
        {
            return ((huqiang.Data.DataTypeInfo)o).name;
        }

        static StackObject* CopyToStack_name_1(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataTypeInfo)o).name;
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_name_1(ref object o, object v)
        {
            ((huqiang.Data.DataTypeInfo)o).name = (System.String)v;
        }

        static StackObject* AssignFromStack_name_1(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.String @name = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Data.DataTypeInfo)o).name = @name;
            return ptr_of_this_method;
        }

        static object get_DataLength_2(ref object o)
        {
            return ((huqiang.Data.DataTypeInfo)o).DataLength;
        }

        static StackObject* CopyToStack_DataLength_2(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataTypeInfo)o).DataLength;
            __ret->ObjectType = ObjectTypes.Integer;
            __ret->Value = result_of_this_method;
            return __ret + 1;
        }

        static void set_DataLength_2(ref object o, object v)
        {
            ((huqiang.Data.DataTypeInfo)o).DataLength = (System.Int32)v;
        }

        static StackObject* AssignFromStack_DataLength_2(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Int32 @DataLength = ptr_of_this_method->Value;
            ((huqiang.Data.DataTypeInfo)o).DataLength = @DataLength;
            return ptr_of_this_method;
        }

        static object get_ElementLength_3(ref object o)
        {
            return ((huqiang.Data.DataTypeInfo)o).ElementLength;
        }

        static StackObject* CopyToStack_ElementLength_3(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataTypeInfo)o).ElementLength;
            __ret->ObjectType = ObjectTypes.Integer;
            __ret->Value = result_of_this_method;
            return __ret + 1;
        }

        static void set_ElementLength_3(ref object o, object v)
        {
            ((huqiang.Data.DataTypeInfo)o).ElementLength = (System.Int16)v;
        }

        static StackObject* AssignFromStack_ElementLength_3(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Int16 @ElementLength = (short)ptr_of_this_method->Value;
            ((huqiang.Data.DataTypeInfo)o).ElementLength = @ElementLength;
            return ptr_of_this_method;
        }

        static object get_type_4(ref object o)
        {
            return ((huqiang.Data.DataTypeInfo)o).type;
        }

        static StackObject* CopyToStack_type_4(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataTypeInfo)o).type;
            object obj_result_of_this_method = result_of_this_method;
            if(obj_result_of_this_method is CrossBindingAdaptorType)
            {    
                return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
            }
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_type_4(ref object o, object v)
        {
            ((huqiang.Data.DataTypeInfo)o).type = (System.Type)v;
        }

        static StackObject* AssignFromStack_type_4(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Type @type = (System.Type)typeof(System.Type).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Data.DataTypeInfo)o).type = @type;
            return ptr_of_this_method;
        }

        static object get_dataFeilds_5(ref object o)
        {
            return ((huqiang.Data.DataTypeInfo)o).dataFeilds;
        }

        static StackObject* CopyToStack_dataFeilds_5(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataTypeInfo)o).dataFeilds;
            object obj_result_of_this_method = result_of_this_method;
            if(obj_result_of_this_method is CrossBindingAdaptorType)
            {    
                return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
            }
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_dataFeilds_5(ref object o, object v)
        {
            ((huqiang.Data.DataTypeInfo)o).dataFeilds = (System.Collections.Generic.List<huqiang.Data.DataFieldInfo>)v;
        }

        static StackObject* AssignFromStack_dataFeilds_5(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Collections.Generic.List<huqiang.Data.DataFieldInfo> @dataFeilds = (System.Collections.Generic.List<huqiang.Data.DataFieldInfo>)typeof(System.Collections.Generic.List<huqiang.Data.DataFieldInfo>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Data.DataTypeInfo)o).dataFeilds = @dataFeilds;
            return ptr_of_this_method;
        }

        static object get_oldDataFeilds_6(ref object o)
        {
            return ((huqiang.Data.DataTypeInfo)o).oldDataFeilds;
        }

        static StackObject* CopyToStack_oldDataFeilds_6(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataTypeInfo)o).oldDataFeilds;
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_oldDataFeilds_6(ref object o, object v)
        {
            ((huqiang.Data.DataTypeInfo)o).oldDataFeilds = (huqiang.Data.DataFieldInfo[])v;
        }

        static StackObject* AssignFromStack_oldDataFeilds_6(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            huqiang.Data.DataFieldInfo[] @oldDataFeilds = (huqiang.Data.DataFieldInfo[])typeof(huqiang.Data.DataFieldInfo[]).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Data.DataTypeInfo)o).oldDataFeilds = @oldDataFeilds;
            return ptr_of_this_method;
        }

        static object get_matchedFields_7(ref object o)
        {
            return ((huqiang.Data.DataTypeInfo)o).matchedFields;
        }

        static StackObject* CopyToStack_matchedFields_7(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataTypeInfo)o).matchedFields;
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_matchedFields_7(ref object o, object v)
        {
            ((huqiang.Data.DataTypeInfo)o).matchedFields = (huqiang.Data.DataFieldInfo[])v;
        }

        static StackObject* AssignFromStack_matchedFields_7(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            huqiang.Data.DataFieldInfo[] @matchedFields = (huqiang.Data.DataFieldInfo[])typeof(huqiang.Data.DataFieldInfo[]).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Data.DataTypeInfo)o).matchedFields = @matchedFields;
            return ptr_of_this_method;
        }

        static object get_newType_8(ref object o)
        {
            return ((huqiang.Data.DataTypeInfo)o).newType;
        }

        static StackObject* CopyToStack_newType_8(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataTypeInfo)o).newType;
            __ret->ObjectType = ObjectTypes.Integer;
            __ret->Value = result_of_this_method;
            return __ret + 1;
        }

        static void set_newType_8(ref object o, object v)
        {
            ((huqiang.Data.DataTypeInfo)o).newType = (System.Int32)v;
        }

        static StackObject* AssignFromStack_newType_8(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Int32 @newType = ptr_of_this_method->Value;
            ((huqiang.Data.DataTypeInfo)o).newType = @newType;
            return ptr_of_this_method;
        }

        static object get_isStruct_9(ref object o)
        {
            return ((huqiang.Data.DataTypeInfo)o).isStruct;
        }

        static StackObject* CopyToStack_isStruct_9(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataTypeInfo)o).isStruct;
            __ret->ObjectType = ObjectTypes.Integer;
            __ret->Value = result_of_this_method ? 1 : 0;
            return __ret + 1;
        }

        static void set_isStruct_9(ref object o, object v)
        {
            ((huqiang.Data.DataTypeInfo)o).isStruct = (System.Boolean)v;
        }

        static StackObject* AssignFromStack_isStruct_9(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Boolean @isStruct = ptr_of_this_method->Value == 1;
            ((huqiang.Data.DataTypeInfo)o).isStruct = @isStruct;
            return ptr_of_this_method;
        }

        static object get_typeIndex_10(ref object o)
        {
            return ((huqiang.Data.DataTypeInfo)o).typeIndex;
        }

        static StackObject* CopyToStack_typeIndex_10(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataTypeInfo)o).typeIndex;
            __ret->ObjectType = ObjectTypes.Integer;
            __ret->Value = result_of_this_method;
            return __ret + 1;
        }

        static void set_typeIndex_10(ref object o, object v)
        {
            ((huqiang.Data.DataTypeInfo)o).typeIndex = (System.Int32)v;
        }

        static StackObject* AssignFromStack_typeIndex_10(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Int32 @typeIndex = ptr_of_this_method->Value;
            ((huqiang.Data.DataTypeInfo)o).typeIndex = @typeIndex;
            return ptr_of_this_method;
        }

        static object get_Construction_11(ref object o)
        {
            return ((huqiang.Data.DataTypeInfo)o).Construction;
        }

        static StackObject* CopyToStack_Construction_11(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataTypeInfo)o).Construction;
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_Construction_11(ref object o, object v)
        {
            ((huqiang.Data.DataTypeInfo)o).Construction = (System.Func<System.Object>)v;
        }

        static StackObject* AssignFromStack_Construction_11(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Func<System.Object> @Construction = (System.Func<System.Object>)typeof(System.Func<System.Object>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)8);
            ((huqiang.Data.DataTypeInfo)o).Construction = @Construction;
            return ptr_of_this_method;
        }

        static object get_NewType_12(ref object o)
        {
            return ((huqiang.Data.DataTypeInfo)o).NewType;
        }

        static StackObject* CopyToStack_NewType_12(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataTypeInfo)o).NewType;
            object obj_result_of_this_method = result_of_this_method;
            if(obj_result_of_this_method is CrossBindingAdaptorType)
            {    
                return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
            }
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_NewType_12(ref object o, object v)
        {
            ((huqiang.Data.DataTypeInfo)o).NewType = (huqiang.Data.DataTypeInfo)v;
        }

        static StackObject* AssignFromStack_NewType_12(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            huqiang.Data.DataTypeInfo @NewType = (huqiang.Data.DataTypeInfo)typeof(huqiang.Data.DataTypeInfo).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Data.DataTypeInfo)o).NewType = @NewType;
            return ptr_of_this_method;
        }

        static object get_OldType_13(ref object o)
        {
            return ((huqiang.Data.DataTypeInfo)o).OldType;
        }

        static StackObject* CopyToStack_OldType_13(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Data.DataTypeInfo)o).OldType;
            object obj_result_of_this_method = result_of_this_method;
            if(obj_result_of_this_method is CrossBindingAdaptorType)
            {    
                return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
            }
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_OldType_13(ref object o, object v)
        {
            ((huqiang.Data.DataTypeInfo)o).OldType = (huqiang.Data.DataTypeInfo)v;
        }

        static StackObject* AssignFromStack_OldType_13(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            huqiang.Data.DataTypeInfo @OldType = (huqiang.Data.DataTypeInfo)typeof(huqiang.Data.DataTypeInfo).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Data.DataTypeInfo)o).OldType = @OldType;
            return ptr_of_this_method;
        }



        static StackObject* Ctor_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* __ret = ILIntepreter.Minus(__esp, 0);

            var result_of_this_method = new huqiang.Data.DataTypeInfo();

            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }


    }
}
